import {MockRequest} from '@delon/mock';

function makeArticles(): Article[] {
  const obj1: Article = {
    detail: `##### 时间片轮转调度算法（RR）：
给每个进程固定的执行时间，根据进程到达的先后顺序让进
程在单位时间片内执行，执行完成后便调度下一个进程执行，时间片轮转调度不考虑进程等待时间和执行时间，属于抢占式调度。优点是兼顾长短作业；缺点是平均等待时间较长，上下文切换较费时。适用于分时系统。
##### 高响应比优先调度算法：
在等待时间相同的情况下，作业执行的时间越短，响应比越高，满足段任务优先，同时响应比会随着等待时间增加而变大，优先级会提高，能够避免饥饿现象。优点是兼顾长短作业，缺点是计算响应比开销大，适用于批处理系统。
##### 短作业优先法：
对预计执行时间短的作业（进程）优先分派处理机。通常后来的短作业不抢先正在执行的作业。
##### 优先级调度算法：
顾名思义了。这种算法使用优先级来决定谁先被服务。
设定优先级会有两种方法，第一是用户自己设定，第二种是系统设定。系统设定会根据作业的类型，作业的等待时间，计算时间，作业的缓急程度等等各方面的因素来判断是否应该被服务，有些系统还能在输入井根据各方面因素来动态改变优先级。
##### 均衡调度算法：
这种算法的主要依据是资源，根据使用不同的资源进行分类，使得占用不同资源的作业能够同时执行，从而提高效率，和系统的吞吐量。

##### 分时系统
分时操作系统 (time-sharing system)，“分时”的含义：分时是指多个用户分享使用同一台计算机。  
##### 批处理系统
批处理是指用户将一批作业提交给操作系统后就不再干预，由操作系统控制它们自动运行。  

设有n个进程共享一个互斥段，对于如下两种情况使用信号量，信号量的值的变化怎样？
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程（m<n）同时进入互斥段。

（1）互斥信号量初值为 1 ，变化范围为［ -n ＋ l , 1 ］。
（2）互斥信号量初值为 m ，变化范围为［ -n ＋ m , m ］。 `,
    id: '0',
    index: '0',
    title: '海思半导体有多大几率挺过这次封锁？',
    overview: '风逐沙飞： 百分百挺过！ 完全被弄死，代表贸易战中国败，中国会翻脸，拒绝美帝芯片进入！中国这么大的市场！美帝企业要被赶出去！你问问美帝芯片同意不！有人中…',
    hot: false,
  };
  const obj2: Article = {
    detail: `##### 时间片轮转调度算法（RR）：
给每个进程固定的执行时间，根据进程到达的先后顺序让进
程在单位时间片内执行，执行完成后便调度下一个进程执行，时间片轮转调度不考虑进程等待时间和执行时间，属于抢占式调度。优点是兼顾长短作业；缺点是平均等待时间较长，上下文切换较费时。适用于分时系统。
##### 高响应比优先调度算法：
在等待时间相同的情况下，作业执行的时间越短，响应比越高，满足段任务优先，同时响应比会随着等待时间增加而变大，优先级会提高，能够避免饥饿现象。优点是兼顾长短作业，缺点是计算响应比开销大，适用于批处理系统。
##### 短作业优先法：
对预计执行时间短的作业（进程）优先分派处理机。通常后来的短作业不抢先正在执行的作业。
##### 优先级调度算法：
顾名思义了。这种算法使用优先级来决定谁先被服务。
设定优先级会有两种方法，第一是用户自己设定，第二种是系统设定。系统设定会根据作业的类型，作业的等待时间，计算时间，作业的缓急程度等等各方面的因素来判断是否应该被服务，有些系统还能在输入井根据各方面因素来动态改变优先级。
##### 均衡调度算法：
这种算法的主要依据是资源，根据使用不同的资源进行分类，使得占用不同资源的作业能够同时执行，从而提高效率，和系统的吞吐量。

##### 分时系统
分时操作系统 (time-sharing system)，“分时”的含义：分时是指多个用户分享使用同一台计算机。  
##### 批处理系统
批处理是指用户将一批作业提交给操作系统后就不再干预，由操作系统控制它们自动运行。  

设有n个进程共享一个互斥段，对于如下两种情况使用信号量，信号量的值的变化怎样？
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程（m<n）同时进入互斥段。

（1）互斥信号量初值为 1 ，变化范围为［ -n ＋ l , 1 ］。
（2）互斥信号量初值为 m ，变化范围为［ -n ＋ m , m ］。 `,
    id: '1',
    index: '1',
    title: '腾讯产品总监：为何我工作10年，内心仍无比恐慌？（强烈推荐）',
    overview: '从南： 来源 | 馒头商学院 （ID：mantousxy） 嘉宾 | 曹菲 （腾讯产品研发中心总监） 我从业到现在已经十年多了，这个问题是我从业五到七八年…',
    hot: false,
  };
  const obj3: Article = {
    detail: `##### 时间片轮转调度算法（RR）：
给每个进程固定的执行时间，根据进程到达的先后顺序让进
程在单位时间片内执行，执行完成后便调度下一个进程执行，时间片轮转调度不考虑进程等待时间和执行时间，属于抢占式调度。优点是兼顾长短作业；缺点是平均等待时间较长，上下文切换较费时。适用于分时系统。
##### 高响应比优先调度算法：
在等待时间相同的情况下，作业执行的时间越短，响应比越高，满足段任务优先，同时响应比会随着等待时间增加而变大，优先级会提高，能够避免饥饿现象。优点是兼顾长短作业，缺点是计算响应比开销大，适用于批处理系统。
##### 短作业优先法：
对预计执行时间短的作业（进程）优先分派处理机。通常后来的短作业不抢先正在执行的作业。
##### 优先级调度算法：
顾名思义了。这种算法使用优先级来决定谁先被服务。
设定优先级会有两种方法，第一是用户自己设定，第二种是系统设定。系统设定会根据作业的类型，作业的等待时间，计算时间，作业的缓急程度等等各方面的因素来判断是否应该被服务，有些系统还能在输入井根据各方面因素来动态改变优先级。
##### 均衡调度算法：
这种算法的主要依据是资源，根据使用不同的资源进行分类，使得占用不同资源的作业能够同时执行，从而提高效率，和系统的吞吐量。

##### 分时系统
分时操作系统 (time-sharing system)，“分时”的含义：分时是指多个用户分享使用同一台计算机。  
##### 批处理系统
批处理是指用户将一批作业提交给操作系统后就不再干预，由操作系统控制它们自动运行。  

设有n个进程共享一个互斥段，对于如下两种情况使用信号量，信号量的值的变化怎样？
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程（m<n）同时进入互斥段。

（1）互斥信号量初值为 1 ，变化范围为［ -n ＋ l , 1 ］。
（2）互斥信号量初值为 m ，变化范围为［ -n ＋ m , m ］。 `,
    id: '2',
    index: '2',
    title: '地铁上写代码被网友嘲讽太装：信号都不好，写什么代码！ 程序员：写代码要信号？',
    overview: '前端彭于晏： 一名程序员拿出电脑，在地铁上写代码，被网友嘲笑太装，信号都不好，写什么代码！这是一名网友发布在互联网匿名社区的帖子，其坐地铁时，拍到了一…',
    hot: false,
  };
  const obj4: Article = {
    detail: `##### 时间片轮转调度算法（RR）：
给每个进程固定的执行时间，根据进程到达的先后顺序让进
程在单位时间片内执行，执行完成后便调度下一个进程执行，时间片轮转调度不考虑进程等待时间和执行时间，属于抢占式调度。优点是兼顾长短作业；缺点是平均等待时间较长，上下文切换较费时。适用于分时系统。
##### 高响应比优先调度算法：
在等待时间相同的情况下，作业执行的时间越短，响应比越高，满足段任务优先，同时响应比会随着等待时间增加而变大，优先级会提高，能够避免饥饿现象。优点是兼顾长短作业，缺点是计算响应比开销大，适用于批处理系统。
##### 短作业优先法：
对预计执行时间短的作业（进程）优先分派处理机。通常后来的短作业不抢先正在执行的作业。
##### 优先级调度算法：
顾名思义了。这种算法使用优先级来决定谁先被服务。
设定优先级会有两种方法，第一是用户自己设定，第二种是系统设定。系统设定会根据作业的类型，作业的等待时间，计算时间，作业的缓急程度等等各方面的因素来判断是否应该被服务，有些系统还能在输入井根据各方面因素来动态改变优先级。
##### 均衡调度算法：
这种算法的主要依据是资源，根据使用不同的资源进行分类，使得占用不同资源的作业能够同时执行，从而提高效率，和系统的吞吐量。

##### 分时系统
分时操作系统 (time-sharing system)，“分时”的含义：分时是指多个用户分享使用同一台计算机。  
##### 批处理系统
批处理是指用户将一批作业提交给操作系统后就不再干预，由操作系统控制它们自动运行。  

设有n个进程共享一个互斥段，对于如下两种情况使用信号量，信号量的值的变化怎样？
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程（m<n）同时进入互斥段。

（1）互斥信号量初值为 1 ，变化范围为［ -n ＋ l , 1 ］。
（2）互斥信号量初值为 m ，变化范围为［ -n ＋ m , m ］。 `,
    id: '3',
    index: '3',
    title: '什么是大格局？大格局的人有哪些表现和思维模式？',
    overview: '奥兰豆豆： 格局大不大，真是在你经历了之后才能感受到的。下面这篇文章，我一段时间就会拿出来看一下，提醒自己。你一定也会受益。 Sam altman 是目…',
    hot: false,
  };
  const obj5: Article = {
    detail: `##### 时间片轮转调度算法（RR）：
给每个进程固定的执行时间，根据进程到达的先后顺序让进
程在单位时间片内执行，执行完成后便调度下一个进程执行，时间片轮转调度不考虑进程等待时间和执行时间，属于抢占式调度。优点是兼顾长短作业；缺点是平均等待时间较长，上下文切换较费时。适用于分时系统。
##### 高响应比优先调度算法：
在等待时间相同的情况下，作业执行的时间越短，响应比越高，满足段任务优先，同时响应比会随着等待时间增加而变大，优先级会提高，能够避免饥饿现象。优点是兼顾长短作业，缺点是计算响应比开销大，适用于批处理系统。
##### 短作业优先法：
对预计执行时间短的作业（进程）优先分派处理机。通常后来的短作业不抢先正在执行的作业。
##### 优先级调度算法：
顾名思义了。这种算法使用优先级来决定谁先被服务。
设定优先级会有两种方法，第一是用户自己设定，第二种是系统设定。系统设定会根据作业的类型，作业的等待时间，计算时间，作业的缓急程度等等各方面的因素来判断是否应该被服务，有些系统还能在输入井根据各方面因素来动态改变优先级。
##### 均衡调度算法：
这种算法的主要依据是资源，根据使用不同的资源进行分类，使得占用不同资源的作业能够同时执行，从而提高效率，和系统的吞吐量。

##### 分时系统
分时操作系统 (time-sharing system)，“分时”的含义：分时是指多个用户分享使用同一台计算机。  
##### 批处理系统
批处理是指用户将一批作业提交给操作系统后就不再干预，由操作系统控制它们自动运行。  

设有n个进程共享一个互斥段，对于如下两种情况使用信号量，信号量的值的变化怎样？
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程（m<n）同时进入互斥段。

（1）互斥信号量初值为 1 ，变化范围为［ -n ＋ l , 1 ］。
（2）互斥信号量初值为 m ，变化范围为［ -n ＋ m , m ］。 `,
    id: '4',
    index: '4',
    title: '海思半导体有多大几率挺过这次封锁？',
    overview: '匿名用户： 利益相关，还是先匿了 要说影响吧，周五上班前还以为会出啥事，主管给大家打打气啥的。结果去了公司，活还是跟以往一样多的不行，只能说暂时没事吧 海…',
    hot: false,
  };

  const obj6: Article = {
    detail: `##### 时间片轮转调度算法（RR）：
给每个进程固定的执行时间，根据进程到达的先后顺序让进
程在单位时间片内执行，执行完成后便调度下一个进程执行，时间片轮转调度不考虑进程等待时间和执行时间，属于抢占式调度。优点是兼顾长短作业；缺点是平均等待时间较长，上下文切换较费时。适用于分时系统。
##### 高响应比优先调度算法：
在等待时间相同的情况下，作业执行的时间越短，响应比越高，满足段任务优先，同时响应比会随着等待时间增加而变大，优先级会提高，能够避免饥饿现象。优点是兼顾长短作业，缺点是计算响应比开销大，适用于批处理系统。
##### 短作业优先法：
对预计执行时间短的作业（进程）优先分派处理机。通常后来的短作业不抢先正在执行的作业。
##### 优先级调度算法：
顾名思义了。这种算法使用优先级来决定谁先被服务。
设定优先级会有两种方法，第一是用户自己设定，第二种是系统设定。系统设定会根据作业的类型，作业的等待时间，计算时间，作业的缓急程度等等各方面的因素来判断是否应该被服务，有些系统还能在输入井根据各方面因素来动态改变优先级。
##### 均衡调度算法：
这种算法的主要依据是资源，根据使用不同的资源进行分类，使得占用不同资源的作业能够同时执行，从而提高效率，和系统的吞吐量。

##### 分时系统
分时操作系统 (time-sharing system)，“分时”的含义：分时是指多个用户分享使用同一台计算机。  
##### 批处理系统
批处理是指用户将一批作业提交给操作系统后就不再干预，由操作系统控制它们自动运行。  

设有n个进程共享一个互斥段，对于如下两种情况使用信号量，信号量的值的变化怎样？
(1) 如果每次只允许一个进程进入互斥段。
(2) 如果每次最多允许m个进程（m<n）同时进入互斥段。

（1）互斥信号量初值为 1 ，变化范围为［ -n ＋ l , 1 ］。
（2）互斥信号量初值为 m ，变化范围为［ -n ＋ m , m ］。 `,
    id: '5',
    index: '5',
    title: 'web前端开发要不要找个师傅带？',
    overview: '虎骑狗： 我干了这行十年了，时常有一种怨念，为何入行之时没有去好好拜师，找个贵人指点下。 不仅仅这行业，每个行业都一样。 为何这么说？ 我现在被人天天叫老哥…',
    hot: false,
  };

  return [obj1, obj2, obj3, obj4, obj5, obj6];
}

function getDetail(id) {
  return makeArticles()[id];
}

export const Home = {
  'GET /home/findAll': makeArticles(),
  'GET /blog/type/getByType': makeArticles(),
  'GET /home/findHot': makeArticles(),
  'GET /home/find': (req: MockRequest) => {
    return getDetail(parseInt(req.queryString.id, 10));
  },
};

export interface Article {
  detail: string;
  id: string;
  index: string;
  title: string;
  overview: string;
  hot: boolean;
}
